package com.quan.mall.service;

import com.quan.commons.core.bean.R;
import com.quan.mall.commons.vo.PmsSpuVo;
import com.quan.mall.entity.PmsSpu;
import com.quan.commons.core.utils.PageUtils;
import com.quan.commons.core.biz.support.MyBaseService;

import java.util.List;

/**
 * 商品-SPU基本信息
 *
 * @author yhaoquan
 * @email yhaoquan@163.com
 * @date 2021-02-09 11:44:02
 */
public interface PmsSpuService extends MyBaseService<PmsSpu> {

    R saveGoodsInfo(PmsSpuVo vo);

    R updateGoodsInfo(PmsSpuVo vo);

    /**
     * 列表查询
     * @param vo
     * @return
     */
    public List<PmsSpuVo> queryList(PageUtils pageUtils, PmsSpuVo vo) ;

    /**
     * 分页查询
     * @param pageUtils
     * @param vo
     * @return
     */
    public PageUtils queryPage(PageUtils pageUtils, PmsSpuVo vo);

    /**
     * 获取商品信息
     * @param vo
     * @return
     */
    public PmsSpuVo getGoodsInfo(PmsSpuVo vo);

    /**
     * 上架/下架
     * @param id
     * @param status
     */
    public void changeStatus(Long id, Integer status);

    /**
     * 是否推荐
     * @param id
     * @param isRecom
     */
    public void changeIsRecom(Long id, Integer isRecom);

    /**
     * 是否精品
     * @param id
     * @param isBest
     */
    public void changeIsBest(Long id, Integer isBest);

    /**
     * 是否热销产品
     * @param id
     * @param isHot
     */
    public void changeIsHot(Long id, Integer isHot);

    /**
     * 是否新品
     * @param id
     * @param isNew
     */
    public void changeIsNew(Long id, Integer isNew);

    /**
     * 获取商品的售卖中的数量和仓库中的数量，及库存预警的商品数量
     * @return
     */
    PmsSpuVo getGoodsCount();
}

